#ifndef AVALON_BINARYDATASHUTTLEFACTORY_HPP
#define AVALON_BINARYDATASHUTTLEFACTORY_HPP
#include "Avalon/Serialization/DataShuttleFactory.hpp"
#include "Avalon/Serialization/BinaryDeserializer.hpp"
#include "Avalon/Serialization/BinarySerializer.hpp"

namespace Avalon {
namespace Serialization {

  /*! \class BinaryDataShuttleFactory
   *  \brief Implements the DataShuttleFactory using binary serialization.
   */
  class BinaryDataShuttleFactory : public DataShuttleFactory {
    public:

      //! Constructs a BinaryDataShuttleFactory.
      BinaryDataShuttleFactory();

      virtual ~BinaryDataShuttleFactory();

      virtual BinarySerializer* CreateSerializer();

      virtual BinaryDeserializer* CreateDeserializer();
  };
}
}

#endif // AVALON_BINARYDATASHUTTLEFACTORY_HPP
